package com.fiveGroup.pojo.vo;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResponseVo<T> {
    private int code;
    private String msg;
    private List<T> data;
    private long total;

    // 快速创建有参成功响应，带数据和总数
    public static <T> PageResponseVo<T> success(List<T> data, long total) {
        PageResponseVo<T> vo = new PageResponseVo<>();
        vo.setCode(200);
        vo.setMsg("success");
        vo.setData(data);
        vo.setTotal(total);
        return vo;
    }

    // 快速创建无参成功响应
    public static <T> PageResponseVo<T> success() {
        PageResponseVo<T> dataVo = new PageResponseVo<>();
        dataVo.setCode(200);
        dataVo.setMsg("success");
        return dataVo;
    }

    // 快速创建失败响应
    public static <T> PageResponseVo<T> fail(int code, String message) {
        PageResponseVo<T> dataVo = new PageResponseVo<>();
        dataVo.setCode(code);
        dataVo.setMsg(message);
        return dataVo;
    }

    public static <T> PageResponseVo<T> fail(String message) {
        PageResponseVo<T> dataVo = new PageResponseVo<>();
        dataVo.setCode(400);
        dataVo.setMsg(message);
        return dataVo;
    }
}